#Makeindex
Eine Liste von Elementen sortieren und aufteilen um einen Index zu erzeugen.
#Kindelemente
(keine)
#Elternelemente
#Attribute
pagenumber
(Text, optional, seit Version 2.7.11)-
Der Name des Attributs der die Seitenzahl enthält. Voreinstellung ist 'page'.
section
(Text)-
Erzeuge ein XML-Element mit diesem Namen für jeden Abschnitt (Buchstabe) in dem Index.
select
(XPath-Ausdruck)-
Der XPath-Ausdruck der die Elementstruktur für den Index enthält (
$Variable
). sortkey
(Text)-
Der Name des Attributs das den Indexeintrag enthält (der sortiert werden soll).
#Beispiel
Die Indexerstellung funktioniert in zwei Schritten. Im ersten Schritt werden die Daten in eine Elementstruktur gespeichert und mit diesem Befehl sortiert. Im zweiten Schritt wird die Elementstruktur ausgegeben (LoadDataset).
<Layout xmlns="urn:speedata.de:2009/publisher/en"
xmlns:sd="urn:speedata:2009/publisher/functions/en">
<Record element="data">
<SetVariable variable="indexeinträge">
<Element name="indexeintrag">
<Attribute name="name" select="'Giraffe'" />
<Attribute name="page" select="1" />
</Element>
<Element name="indexeintrag">
<Attribute name="name" select="'Garage'" />
<Attribute name="page" select="2" />
</Element>
<Element name="indexeintrag">
<Attribute name="name" select="'Grußwort'" />
<Attribute name="page" select="3" />
</Element>
<Element name="indexeintrag">
<Attribute name="name" select="'Aufzug'" />
<Attribute name="page" select="4" />
</Element>
</SetVariable>
<SetVariable variable="index">
<Element name="Index">
<Makeindex select="$indexeinträge/indexeintrag" sortkey="name" section="teil" />
</Element>
</SetVariable>
<ProcessNode select="$index/Index"></ProcessNode>
</Record>
<Record element="Index">
<ForAll select="teil">
<PlaceObject>
<Table width="3" stretch="max">
<Tr>
<Td border-bottom="0.4pt" colspan="2">
<Paragraph>
<Value select="@name" />
</Paragraph>
</Td>
</Tr>
<ForAll select="indexeintrag">
<Tr>
<Td>
<Paragraph>
<Value select="@name" />
</Paragraph>
</Td>
<Td>
<Paragraph>
<Value select="@page" />
</Paragraph>
</Td>
</Tr>
</ForAll>
</Table>
</PlaceObject>
<NextRow />
</ForAll>
</Record>
</Layout>
#Siehe auch
Das Kapitel Stichwortverzeichnisse.